package yt.xgk.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import yt.xgk.entity.Xgk2025;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import yt.xgk.mapper.Xgk2025Mapper;
import yt.xgk.service.IXgk2025Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author ${author}
 * @since 2022-03-14
 */
@Service
public class Xgk2025ServiceImpl extends ServiceImpl<Xgk2025Mapper, Xgk2025> implements IXgk2025Service {
    @Autowired
    private Xgk2025Mapper xgk2025Mapper;

    //这个是我们的模糊查询 我们需要将我们的数据放到这里面就行 我们不需要在我们的controller里面去书写
    // 那样的话太麻烦了（这个是模糊查询名字）
    @Override
    public List<Map<String, Object>> xgk2025Like(String likeName) {
        //新建一个querrywrapper的查询对象
        QueryWrapper<Xgk2025> wrapper = new QueryWrapper<>();
        //构造我们的查询条件
        wrapper.like("name", likeName);
        //执行查询（之后会返回我们的对象 这个是我们的模糊查询是这样的其实）
        List<Map<String, Object>> maps = xgk2025Mapper.selectMaps(wrapper);
        maps.forEach(System.out::println);
        return maps;
    }

    @Override
    public List<Map<String, Object>> xgk2025LikeId(Integer likeId) {
        //新建一个querrywrapper的查询对象
        QueryWrapper<Xgk2025> wrapper = new QueryWrapper<>();
        //构造我们的查询条件
        wrapper.like("university_id", likeId);
        //执行查询（之后会返回我们的对象 这个是我们的模糊查询是这样的其实）
        List<Map<String, Object>> maps = xgk2025Mapper.selectMaps(wrapper);
        maps.forEach(System.out::println);
        return maps;
    }

    @Override//这样设置的话
    // 使我们的可扩展性能更加的好 因为我们可以做的事情就越多 因为我们的数据是可以进行实际的操作的
    public String updateData(
            String setValueName,//你要搜索的
            String setValue,
            String valueName,
            String value
    ) {
        System.out.println(valueName + value + setValueName + setValue);
        UpdateWrapper<Xgk2025> xgk2023UpdateWrapper = new UpdateWrapper<>();
        xgk2023UpdateWrapper.eq(valueName, value).set(setValueName, setValue);
        xgk2025Mapper.update(null, xgk2023UpdateWrapper);
        return "更新数据成功";
    }

    @Override
    public List<Xgk2025> selectAllData() {
        return xgk2025Mapper.selectAllData();
    }

    @Override
    public List<Map<String, Object>> selectByRanking(String ranking) {
        QueryWrapper<Xgk2025> selectByRanking2 = new QueryWrapper<>();
        selectByRanking2.eq("ranking", ranking);
        //执行查询（之后会返回我们的对象 这个是我们的模糊查询是这样的其实）
        List<Map<String, Object>> maps = xgk2025Mapper.selectMaps(selectByRanking2);
        return maps;


    }

    @Override
    public List<Map<String, Object>> selectLocation(String location) {
        QueryWrapper<Xgk2025> selectLo = new QueryWrapper<>();
        selectLo.like("location_city", location);

        return xgk2025Mapper.selectMaps(selectLo);
    }
}
